package com.funsport.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.funsport.entity.Favorite;

import java.util.List;

/**
 * 收藏服务接口
 */
public interface IFavoriteService extends IService<Favorite> {
    
    /**
     * 添加收藏
     * @param userId 用户ID
     * @param targetType 目标类型
     * @param targetId 目标ID
     * @return 是否成功
     */
    boolean addFavorite(Long userId, String targetType, Long targetId);
    
    /**
     * 取消收藏
     * @param userId 用户ID
     * @param targetType 目标类型
     * @param targetId 目标ID
     * @return 是否成功
     */
    boolean removeFavorite(Long userId, String targetType, Long targetId);
    
    /**
     * 检查是否已收藏
     * @param userId 用户ID
     * @param targetType 目标类型
     * @param targetId 目标ID
     * @return 是否已收藏
     */
    boolean isFavorited(Long userId, String targetType, Long targetId);
    
    /**
     * 获取用户收藏列表
     * @param userId 用户ID
     * @param targetType 目标类型
     * @return 收藏列表
     */
    List<Favorite> getUserFavorites(Long userId, String targetType);
    
    /**
     * 获取用户收藏的ID列表
     * @param userId 用户ID
     * @param targetType 目标类型
     * @return ID列表
     */
    List<Long> getUserFavoriteIds(Long userId, String targetType);
}

